// SessionManager全局变量
var SessionManager;
(function () {
    // 路径常量(Debug用)
    var URL_PATH = "http://127.0.0.1:8080/src/";

    function InjectJsFiles(fileList, initFunc) {

        function loop() {
            if (fileList.length > 0) {
                var file = fileList.shift();
                AddJs(file, loop);
            } else {
                initFunc();
            }
        }

        loop();
    }

    function AddJs(path, callback) {
        console.log(path + ' loaded');
        var head = document.getElementsByTagName('head')[0];
        var script = document.createElement('script');
        script.src = URL_PATH + path;
        script.onload = callback;
        head.appendChild(script);
    }

    function AddCSS() {
        var head = document.getElementsByTagName('head')[0];
        var style = document.createElement('style');
        style.innerHTML = templatizer.css();
        head.appendChild(style);
    }

    function Init() {
        console.log('Init()');
        AddCSS();
        SessionManager.Load();
        SessionManager.BuildGUI();
    }

    /* 初始化过程，加载必要的JavaScript文件及一些初始化操作 */

    // 避免重复加载
    if (SessionManager === undefined) {
        // 确保按顺序加载完所有JavaScript
        var Files = ['_templates.js', 'FileSaver.js', 'SessionManager.js',
            'GUI.js', 'Session.js'
        ];
        InjectJsFiles(Files, Init); // 执行初始化函数
    } else {
        alert('增强工具已载入，请勿重复加载！');
    }
})();